import sceneConf from '../../confs/scene-conf'

// 相机
// 世界坐标系向相机坐标系的转换
// 设置相机的位置和相机照向的方向
class Camera {
    constructor() {
        this.instance = null
    }

    init () {
        const aspect = window.innerHeight / window.innerWidth
        // 正交相机（OrthographicCamera）
        // 这一摄像机使用orthographic projection（正交投影）来进行投影。
        // 在这种投影模式下，无论物体距离相机距离远或者近，在最终渲染的图片中物体的大小都保持不变。
        // 这对于渲染2D场景或者UI元素是非常有用的。
        // this.instance = new THREE.OrthographicCamera(
        //     -sceneConf.frustumSize, 
        //     sceneConf.frustumSize, 
        //     sceneConf.frustumSize * aspect, 
        //     -sceneConf.frustumSize * aspect, 
        //     -100, 
        //     85
        // ) // 正交相机
        this.instance = new THREE.OrthographicCamera(
            -sceneConf.frustumSize, // left
            sceneConf.frustumSize, // right
            sceneConf.frustumSize * aspect, // top
            -sceneConf.frustumSize * aspect, // bottom
            -100, // near
            85 // far
          );
        this.instance.position.set(-10, 10, 10) // 相机位置
        this.target = new THREE.Vector3(0, 0, 0) // 相机望向坐标(方向)
        this.instance.lookAt(this.target)
    }
}

export default new Camera()